using System.Collections.Generic;
using UnityEngine;
public interface IShipAPI {
	public IRadar Radar         { get; }
	public IReactor Reactor     { get; }
	public ISignalReceiver SignalReceiver { get; }
	public TeamType Team        { get; }
	public Vector3 ShipPosition { get; }
	public Vector3 EulerAngles  { get; }
	public float ThrustLimit    { get; set; }
	public float SpeedLimit     {get; set; }
	public float Velocity       { get; }
	public Vector3 TargetPoint  { get; set; }
	public float DistanceToAutopilotTarget { get; }
	public bool AttitudeAutopilotEnabled   { get; set; }
	public bool ThrustAutopilotEnabled     { get; set; }
	public bool CollisionAvoidanceEnabled  { get; set; }

	public int Health { get; }
	public bool IsLookingAtTarget();
	public bool ShootGun();

	public void Jump(Vector3 direction);

	public Vector3 DirectionLocalToGlobal(Vector3 direction);

	public int CollectAllCargo() ;

	public void DropAllCargo() ;

	public void DropFromSlot(int slot);
	public void DropFromSlot(int slot, int count);
	public bool CollectItem(EntitySummary item);

	public bool CollectItem(uint itemId);

	public bool CraftMissile();

	public bool LaunchMissile(uint targetId);

	public int GetInventoryTotalItemsCount() ;

	public int GetInventoryTotalPrice();

	public int GetInventoryFreeSlotsCount() ;

	public int GetInventoryCapacity() ;

	public int GetInventoryOccupiedSlotsCount();

	public void SetShipControls(float pitch, float yaw, float roll, float thrust);
	public Vector4 GetShipControlInputs();

	public InventoryItemDescription GetInventorySlotInfo(int slotIndex);

	public List<InventoryItemDescription> GetAllInventoryItems();

	public void BreakCoroutine();
}
